@echo off

REM 检查是否以管理员权限运行
NET SESSION >nul 2>&1
if %errorLevel% neq 0 (
    echo 请以管理员权限运行此脚本！
    pause
    exit /b 1
)

REM 设置脚本工作目录为当前目录
echo 设置工作目录为：%~dp0
cd /d "%~dp0"

REM 检查Python是否安装
where python >nul 2>nul
if %errorLevel% neq 0 (
    echo 未找到Python，请先安装Python 3.8或更高版本！
    echo 建议从 https://www.python.org/downloads/ 下载安装
    pause
    exit /b 1
)

REM 检查Python版本
for /f "tokens=*" %%i in ('python --version 2^>^&1') do set PYTHON_VERSION=%%i
echo 当前Python版本: %PYTHON_VERSION%

REM 检查是否安装了pip
where pip >nul 2>nul
if %errorLevel% neq 0 (
    echo 未找到pip，请先安装pip！
    echo 尝试安装pip...
    python -m ensurepip --default-pip
    if %errorLevel% neq 0 (
        echo 安装pip失败，请手动安装！
        pause
        exit /b 1
    )
)

REM 更新pip
pip install --upgrade pip
if %errorLevel% neq 0 (
    echo 更新pip失败，将继续尝试安装依赖...
)

REM 安装项目依赖
pip install -r requirements.txt
if %errorLevel% neq 0 (
    echo 安装依赖失败！请检查网络连接或手动安装依赖。
    pause
    exit /b 1
)

REM 安装CUDA相关依赖（如果有NVIDIA GPU）
echo 检查NVIDIA GPU...
python -c "import torch; print(torch.cuda.is_available())" > cuda_check.txt 2>&1
set /p CUDA_AVAILABLE= < cuda_check.txt
del cuda_check.txt

if "%CUDA_AVAILABLE%" == "True" (
    echo 检测到NVIDIA GPU，安装CUDA版本的PyTorch依赖
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    if %errorLevel% neq 0 (
        echo 安装CUDA版本PyTorch失败，将使用CPU版本
    )
)

REM 创建必要的目录
cd ..
echo 创建必要的目录...
mkdir models 2>nul
mkdir outputs 2>nul
mkdir test_images 2>nul

REM 创建默认的测试图像文件
if not exist test_images\test1.jpg (
    echo 创建默认测试图像文件占位符
    echo. > test_images\test1.jpg
    echo 请将测试图像放入 test_images\test1.jpg
)

REM 显示安装完成信息
echo.
echo ===============================
echo MiniCPM-V 环境安装完成！
echo ===============================
echo 接下来的步骤：
echo 1. 确保已下载MiniCPM-V模型，并放在models目录下

echo 2. 运行 check_env.py 检查环境是否配置正确
echo 3. 运行 minicpm_v_demo.py 开始使用模型

echo 如有问题，请查看README.md文件或联系技术支持

echo 按任意键退出...
pause >nul